home *** CD-ROM | disk | FTP | other *** search
- +---------------------------------+
- | CBLibrary |
- | (C) 2003 Chris Bazley |
- | Release 8 (23rd October 2003) |
- +---------------------------------+
- N.B. This text is best viewed at a display width of 77 columns.
-
- Preamble
- --------
-
- This is yet another C library for RISC OS. Actually, it is more like a
- personal collection of components that happen to be common to many of my
- applications. It has a large number of external dependencies, including most
- of the libraries supplied with the Acorn C/C++ package.
-
- I do not seriously expect many (any?) other programmers to use CBLibrary,
- but it has to be in the public domain in order that the programs that use it
- can meaningfully be released under the GNU General Public Licence.
-
- The most interesting component is probably 'Loader', which is fully
- documented elsewhere and for which an example client program is available.
-
- The 'bool' issue
- ----------------
-
- As supplied, CBLibrary expects the type 'bool' to be a byte, since this is
- how it is implemented in Castle's C99 compiler. If you have an older
- compiler then it is likely that your standard C library's 'stdbool' header
- (if you have one) typedefs 'bool' as 'int'. If this is the case you then
- will have to change BOOL_8_BIT to {FALSE} in s.timer, and then rebuild the
- *entire* library. This is necessary because various components have
- pointers to type 'bool' in their functional interfaces.
-
- Compiling the library
- ---------------------
-
- You should ensure that the Acorn C/C++ library directories clib, tboxlibs
- and flexlib are on your C$Path. Otherwise the compiler won't be able to find
- the required library headers.
-
- The supplied Makefile uses the default CC and ObjAsm options. For recent
- releases of the Acorn C/C++ Development Suite (from Castle Technology) this
- means 32-bit configuration for ObjAsm and APCS-32 (apcs 3/32bit/fpe3) for CC.
-
- To compile code to be linked with StubsG, you must add '-DOLD_SCL_STUBS
- -apcs 3/32/fpe2/swst/fp/fpr' to the CC command line. This removes any
- dependency on functions not provided by older versions of the shared C
- library & stubs. However, it is likely that the source code will still
- contain some C99 syntax (requiring modification for old compilers).
-
- Licence and disclaimer
- ----------------------
-
- This library is free software; you can redistribute it and/or modify it
- under the terms of the GNU Lesser General Public License as published by the
- Free Software Foundation; either version 2.1 of the License, or (at your
- option) any later version.
-
- This library is distributed in the hope that it will be useful, but
- WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
- FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License
- for more details.
-
- You should have received a copy of the GNU Lesser General Public License
- along with this library; if not, write to the Free Software Foundation,
- Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
-
- Credits
- -------
-
- Most of CBLibrary was written by Chris Bazley.
-
- The 'FedCompMT' component contains a substantial amount of code by David
- O'Shea, who wrote a DeComp module for use with the Stunt Racer track
- designer.
-
- The 'err' and 'msgtrans' components are derived from those supplied with Tony
- Houghton's tutorial application !FormText.
-
- History
- -------
-
- Release 4 (9th September 2003)
- - First stand-alone release under the L.G.P.L.
-
- Release 5 (11th September 2003)
- - To make a listener accept all load requests regardless of drop location you
- must now pass NULL_ObjectId rather than -1 to loader_register_listener().
- This change breaks the F.I.D., but I felt it was necessary - sorry.
- - loader_buffer_file() now guarantees not to change the 'file_path' string
- passed to it.
-
- Release 6 (11th September 2003)
- - s.timer had been assuming that *timeup_flag pointed to a word value. This
- was dangerous when linking with code generated by Castle's new compiler, so
- it is now set up to access a byte value instead. Which version to
- assemble can be configured by setting the variable BOOL_8_BIT.
- - Changed the names of the 'FednetCompM' and 'AbortFileOp' components to fit
- within the 10 character name limit on old filing systems.
- - s.timer now assembles as either APCS-R or APCS-32 code, depending on the
- value of ObjASM's built-in variable {CONFIG}.
-
- Release 7 (13th September 2003)
- - Changed the names of various structures and types defined by h.SFformats.
- - The default state of c.err is now to record errors; renamed the 'err_rec'
- header as 'err'.
- - o.ErrNotRec and o.FPCompOnly (which provide cut-down features of c.err and
- c.FilePerc respectively) can be built separately. Since the linker scans
- AOFs before libraries, programs can be linked with them and they will
- override the objects in CBLib.
-
- Release 8 (23rd October 2003)
- - Removed redundant (and misleading) 'NullPoll_suspend' header.
- - The 'NullPoll' and 'Loader' components no longer check the pointers
- returned by event_get_mask() and event_set_mask(), which are always NULL!
- - Various 'NullPoll', 'NoBudge' and 'RoundRobin' functions that formerly
- returned a pointer to a fancy error message now merely assert() valid
- calling conditions (e.g. at least one client registered, for
- nullpoll_deregister). This should simplify production code, where such
- errors should not occur anyway.
- - You can now define the symbol OLD_SCL_STUBS to compile code for use with
- StubsG rather than Castle's stubs for the new (C99 supporting) shared C
- library.
-
- Contact details
- ---------------
-
- Chris Bazley (chrisbazley@bigfoot.com)
- WWW: http://www.bigfoot.com/~chrisbazley/
-